יש לי בעיה קטנה,
עשיתי שכתוב כשנגשים לכתובת domain.com/en זה יהיה כאילו ניגשו לdomain.com/?lang=en
זה התנאי:
עכשיו מה שקורה זה שגם אם נכנס לכתובת domain.com/en/en זה עדיין יעבוד...
איך ניתן למקד את התנאי יותר?
למה ה^ לא עוזר?
תודה לעוזרים :)
7 תשובות
1) למה ה-? אחרי הקבוצה השנייה? זה לא עושה כלום..
2) לפי האתר הבא (http://martinmelin.se/rewrite-rule-tester/) שמאפשר לבדוק rewrite זה עובד..
3) אולי זה קשור לסלאשים במערכות שונות - בחלק זה / ובחלק זה \
הקבוצה השניה זה כי ניתן לגשת גם בלי וגם עם..
והבעיה היא לא שזה לא עובד,
אלא שזה עובד יותר מידי טוב...
1) אני לא שואל למה הקבוצה השנייה, אני שואל למה יש אחריה ? שאומר 1 או 0
2) תגדיר "עובד יותר מדי טוב"
1) כי זה מתאים ל2 הנתיבים הבאים:
/en/page.php
/en/
2) כבר הגדרתי:
גם כשנכנסים ל/en/en/ (שים לב לכפילות של השפה) זה עובד.
זה אמור לעבוד.
אני רוצה להכנס לעמוד en שבשפה האנגלית, למה אסור לי?
אממ,
עידן עכשיו הבהרת לי נקודה חשובה.
אבל עדיין מילא נניח שלעמוד קוראים en/page.php למה זה לא מחזיר שגיאה שהעמוד לא נמצא?
קורה שם משהו יחסית מעניין.
בבקשה הראשנה ל site.com/en/en
השרת מבין את הקישור בתור
site.com/en?lang=en
ועושה בקשה פנימית חדשה
הבקשה החדשה גם כן עוברת דרך כללי ה rewrite
והיא מתורגמת מ site.com/en?lang=en
למשהו כמו site.com/?lang=en&lang=en
ש PHP מבין בתור פרמטר אחד (לא שניים).
תנסה להוסיף את הסימון L ל rewriteRule שאומר LAST, כלומר זה התנאי האחרון שיפוענח עבור הבקשה של המשתמש לשרת.
nc = no case